﻿package main

import "fmt"

// 阶乘：0!=1，n!=(n-1)!*n。下面就按这个思路做的递归
func get_factorial(n int) uint64{
    if n == 0 {
        return 1
    } else {
        return get_factorial(n-1) * uint64(n)
    }
}

func sum_factorial(n int) uint64 {
    if n == 1 {
        return get_factorial(1)
    } else {
        return sum_factorial(n-1) + get_factorial(n)
    }
}

func main(){
    fmt.Print("请输入一个正整数：")
    var n int
    fmt.Scanf("%d", &n)
    if n == 0 {
        fmt.Println("输入错误...")
        return
    }
    sum := sum_factorial(n)
    fmt.Println(sum)
}